# -*- coding: UTF-8 -*-
"""
@File    ：1.闭包.py
@Author  ：techPang
@Date    ：2025/2/10 10:50 
@Version ：1.0

闭包:防止外界随意修改全局变量，需要在外层嵌套一个方法，会占用内存用来存储变量值

"""


def out(logo):
    # 如果想要在inner中修改logo，需要使用nonlocal来修饰
    def inner(msg):
        # nonlocal logo
        print(f"<{logo}>{msg}<{logo}>")

    return inner


# 这样，logo在创建时就已经确定了
fn1 = out("Hello")
fn1("大家好")
fn1("加油")

fn2 = out("Hi")
fn2("好好学习")
fn2("天天向上")
